Computer systems typically include bulk storage systems, such as magnetic disk drives, optical storage devices, tape drives, or solid state storage drives, among other storage systems. As storage needs have increased in these computer systems, networked storage systems have been introduced which store large amounts of data in a storage environment physically separate from end user computer devices. These networked storage systems typically provide access to bulk data storage over one or more network interfaces to end users or other external systems. In addition to storage of data, remote computing systems include various processing systems that can provide remote computing resources to end users. These networked storage systems and remote computing systems can be included in high-density installations, such as rack-mounted environments.
However, as the densities of networked storage systems and remote computing systems increase, various physical limitations can be reached. These limitations include density limitations based on the underlying storage technology, such as in the example of large arrays of rotating magnetic media storage systems. These limitations can also include computing density limitations based on the various physical space requirements for network interconnect as well as the large space requirements for environmental climate control systems.
In addition to physical space limitations, these bulk storage systems have been traditionally limited in the number of devices that can be included per host, which can be problematic in storage environments where higher capacity, redundancy, and reliability is desired. These shortcomings can be especially pronounced with the increasing data storage and retrieval needs in networked, cloud, and enterprise environments. Moreover, when data storage drives are shared among many different processors or processing systems of data storage systems, data coherency and ordering can be troublesome, which can lead to data corruption and inadvertent overwriting of data.
Overview
Systems, methods, apparatuses, and software for data storage systems are provided herein. In one example, a data storage system is provided that includes a plurality of processing systems configured to receive storage operations for a plurality of storage drives coupled over a communication fabric, each of the plurality of storage drives configured to store data and retrieve the data stored on associated storage media responsive to the storage operations. The data storage system includes a control processor configured to establish a timer synchronization signal and distribute the timer synchronization signal to the plurality of processing systems. Each of the plurality of processing systems is configured to assign timestamps to received ones of the storage operations based on a timestamp counter synchronized among the plurality of processing systems using the timer synchronization signal. The plurality of processing systems are configured to order committing of the storage operations to the plurality of storage drives based at least on the timestamps associated with the storage operations.
In another example, a method of operating a data storage system is presented. The method includes, in a plurality of processing systems, receiving storage operations for a plurality of storage drives coupled over a communication fabric, with each of the plurality of storage drives configured to store data and retrieve the data stored on associated storage media responsive to the storage operations. The method includes, in a control processor, establishing a timer synchronization signal and distributing the timer synchronization signal to the plurality of processing systems. The method includes, in each of the plurality of processing systems, assigning timestamps to received ones of the storage operations based on a timestamp counter synchronized among the plurality of processing systems using the timer synchronization signal. The method includes, in the plurality of processing systems, ordering committing of the storage operations to the plurality of storage drives based at least on the timestamps associated with the storage operations.
In another example, a data storage system is presented. The data storage system includes a plurality storage drives configured to store data and retrieve the data stored on associated storage media responsive to data transactions. The data storage system includes one or more processing modules configured to each manage only an associated subset of the plurality of storage drives, each of the one or more processing modules coupled to an associated communication interface configured to receive storage transactions for any of the plurality of storage drives. The data storage system includes a management processor configured to establish a timer synchronization signal and distribute the timer synchronization signal to the one or more processing modules. The one or more processing modules are configured to receive the storage transactions, responsively associate the storage transactions with timestamps based at least on the timer synchronization signal distributed by the management processor, and selectively transfer ones of the storage transactions to at least another of the processing modules for handling of the ones of the storage transactions. Each of the one or more processing modules are configured to order a commit process for the storage transactions intended for the associated subset of the plurality of storage drives based at least on the timestamps of the storage transactions.